package xuanke;
import java.util.ArrayList;
import java.util.List;
public class Student extends Person {
    // 子类新增属性：所选课程列表
    private List<Course> selectedCourses = new ArrayList<>();

    // 子类构造方法，调用父类构造
    public Student(String id, String name, String gender) {
        super(id, name, gender); // 调用父类构造方法
    }

    // 选课方法
    public void selectCourse(Course course) {
        selectedCourses.add(course);
        System.out.println(name + " 已选课程：" + course.getCourseName());
    }

    // 退课方法
    public void dropCourse(Course course) {
        if (selectedCourses.remove(course)) {
            System.out.println(name + " 已退课：" + course.getCourseName());
        } else {
            System.out.println(name + " 未选该课程：" + course.getCourseName());
        }
    }

    // 重写父类方法：打印学生课表
    @Override
    public void printInfo() {
        super.printInfo(); // 调用父类打印个人信息的方法
        System.out.println("=== 学生课表 ===");
        for (Course course : selectedCourses) {
            System.out.println("课程编号：" + course.getCourseId() + "，课程名称：" + course.getCourseName() + 
                               "，上课地点：" + course.getLocation() + "，时间：" + course.getTime() + 
                               "，授课教师：" + course.getTeacher().getName());
        }
    }

    // Getter方法（可选，用于外部访问课程列表）
    public List<Course> getSelectedCourses() {
        return selectedCourses;
    }
}
